// 定义二叉树
function Node(value){
    this.value=value;
    this.left=null;
    this.right=null;    
}


const a=new Node("a")
const b=new Node("b")
const c=new Node("c")
const d=new Node("d")
const e=new Node("e")
const f=new Node("f")
const g=new Node("g")

a.left=c;
a.right=b;
b.left=d;
b.right=e;
c.left=f;
c.right=g;


// 前序遍历（先跟次序遍历） 当前-左子树-右子树
function f1(node){
    if(node==null)return;
    console.log(node.value);
    f1(node.left);  //左子树
    f1(node.right);  //右子树
}
console.log("前序遍历：");
f1(a);

// 中序遍历  先左边 当前 右边
function f2(node){
    if(node==null)return;
    f2(node.left);  //左子树
    console.log(node.value);
    f2(node.right);  //右子树
}
console.log("中序遍历：");
f2(a);


// 后序遍历   每层 左边右边中间
function f3(node){
    if(node==null)return;
    f3(node.left);  //左子树
    f3(node.right);  //右子树
    console.log(node.value);
}
console.log("后序遍历：");
f3(a)

